#include <iostream>

class Message
{
public:
    void play()
    {
        std::cout << "发短信\n";
    }
};

class phone
{
public:
    void play()
    {
        std::cout << "打电话" << std::endl;
    }
    void sendMessage()
    {
        m.play();  // 调Message中的函数
    }
private:
    Message m; // 将一个类的对象塞入另一个对象   组合
};

class Game
{
public:
    void play()
    {
        std::cout << "玩游戏" << std::endl;
    }
};

class SmartPhone : public phone, public Game // 多继承:一个子类有多个父类
{
};

// 多重继承：子类的父类仍有父类:间接基类
int main()
{
    SmartPhone s;
    // s.phone::play();  // 二义性问题 :要明确函数来自哪个父类
    // s.phone::Message::play();
    s.sendMessage();
    return 0;
}
